import axios from 'axios'
import qs from 'qs'

// import {REMOTE_ADDRESS} from '~/config'
// const {REMOTE_ADDRESS} = require('~/config')
import {REMOTE_ADDRESS} from '~/config'

// const token = getCookie('token')
// var instance = axios.create({
//   // baseURL: 'https://some-domain.com/api/',
//   // timeout: 1000,
//   headers: {'Content-Type': 'application/json; charset=UTF-8'}
// })
// const CONTENT_TYPE = {
//   FORM_DATA: 'multipart/form-data; charset=UTF-8',
//   FORM: 'application/x-www-form-urlencoded; charset=UTF-8',
//   JSON: 'application/json; charset=UTF-8'
// }
// axios.interceptors.response.use(function (response) {
//   console.log('response', response)
//   return response
// }, function (error) {
//   return Promise.reject(error);
// });

const CONTENT_TYPE = {
  FORM_DATA: 'multipart/form-data; charset=UTF-8',
  FORM: 'application/x-www-form-urlencoded; charset=UTF-8',
  JSON: 'application/json; charset=UTF-8'
}

export function asyncPost(url, json, contentType = 'FORM', method = 'POST') {
  // console.log(process.client ? '客户端' : '服务端')
  let p
  if (process.client) {
    p = axios({
      method: 'POST',
      // baseURL: '/api', // `baseURL` 将自动加在 `url` 前面，除非 `url` 是一个绝对 URL。
      url: '/dispatch',
      data: {
        method,
        url,
        data: json,
        contentType
      },
    })
  } else {
    const accessToken = process.accessToken || ''

    // console.log('服务端token：', useToken)
    p = axios({
      method,
      baseURL: REMOTE_ADDRESS,
      // baseURL: '/api', // `baseURL` 将自动加在 `url` 前面，除非 `url` 是一个绝对 URL。
      url,
      data: qs.stringify(json),
      headers: {
        'Content-Type': CONTENT_TYPE[contentType || 'FORM'],
        Authorization: accessToken
      }
    })
  }
  return new Promise((resolve, reject) => {
    p
      .then(resp => {
        resolve(resp.data)
      })
      .catch(err => {
        reject(err)
      })
  })
}

export function post(url, json) {

  return axios({
    method: 'POST',
    // baseURL: '/api', // `baseURL` 将自动加在 `url` 前面，除非 `url` 是一个绝对 URL。
    url: '/dispatch',
    data: {
      method: 'POST',
      url: url,
      data: json
    }
    // proxy: {
    //   host: '192.168.0.120',
    //   port: 8082
    // auth: {
    //   username: 'mikeymike',
    //   password: 'rapunz3l'
    // }
    // }
  })

}
